1900
InsertControlItem / UserEditor / A2X:

G2antt1->BeginUpdate();
G2antt1->BackColor = RGB(240,240,240);
G2antt1->Chart->set_PaneWidth(true,0);
G2antt1->ConditionalFormats->Add(L"1 = 1",TNoParam())->Bold = true;
G2antt1->Columns->Add(L"Type")->Alignment = Exg2anttlib_tlb::AlignmentEnum::RightAlignment;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("1. A ProgID such as \"MSCAL.Calendar.7\""));
	var_Items->set_ItemDivider(h,0);
	long hX = var_Items->InsertControlItem(0,L"MSCAL.Calendar",TVariant(""));
	(IDispatch*)var_Items->get_ItemObject(hX)->BackColor = RGB(255,255,255);
	h = var_Items->AddItem(TVariant("2. A CLSID such as \"{0036F83C-D892-4B7B-AA0B-BEDD8D16A738}\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"{0036F83C-D892-4B7B-AA0B-BEDD8D16A738}",TVariant(""));
	h = var_Items->AddItem(TVariant("3. A URL such as \"http://www.exontrol.com\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"http://www.exontrol.com",TVariant(""));
	h = var_Items->AddItem(TVariant("4. A reference to an Active document such as \"file://\\\\Documents\\MyDoc.doc\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"file://C:\\empesting.xml",TVariant(""));
	h = var_Items->AddItem(TVariant("5.A fragment of HTML such as \"MSHTML:<HTML><BODY>This is a line of text</BODY></HTML>\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"MSHTML:<HTML><BODY>This is a <b>line of</b> text</BODY></HTML>",TVariant(""));
	var_Items->set_ItemHeight(hX,56);
	h = var_Items->AddItem(TVariant("6.Anything, if it is preffixed by \"A2X:\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"A2X:TOC24.Toc24Ctrl.1",TVariant(""));
G2antt1->EndUpdate();

1899
How do I add a RichTextBox editor
// UserEditorOleEvent event - Occurs when an user editor fires an event.
void __fastcall TForm1::G2antt1UserEditorOleEvent(TObject *Sender,IDispatch   *Object,Exg2anttlib_tlb::IOleEvent   *Ev,VARIANT_BOOL *   CloseEditor,Exg2anttlib_tlb::HITEM   Item,long   ColIndex)
{
	OutputDebugString( L"Ev" );
}

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->DefaultItemHeight = 32;
Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"RICHTEXT")->Editor;
	var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::UserEditorType;
	var_Editor->UserEditor(L"RICHTEXT.RichtextCtrl",L"");
	/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft Rich Textbox Control 6.0 (SP4)

	TypeLib: richtx32.ocx

	to define the namespace: Richtextlib_tlb
*/
//#include "RICHTEXTLIB_TLB.h"
	Richtextlib_tlb::IRichTextPtr var_RichTextBox = (IDispatch*)var_Editor->UserEditorObject;
		var_RichTextBox->AutoVerbMenu = true;
		var_RichTextBox->TextRTF = L"{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\\r\\nThis is some {\\b bold} text.\\par\\r\\n}";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("RICHTEXT.RichtextCtrl"));
G2antt1->EndUpdate();

1898
Is it possible to trap a double-click event on a specific cell and when that happens, to set the cell to a specific value
// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void __fastcall TForm1::G2antt1DblClick(TObject *Sender,short   Shift,int   X,int   Y)
{
	long h = G2antt1->ItemFromPoint[-1,-1,c,hit];
	OutputDebugString( PChar(G2antt1->Items->get_CellValue(TVariant(h),TVariant(c))) );
}

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->Columns->Add(L"C1");
G2antt1->Columns->Add(L"C2");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item 1"))),TVariant(1),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item 3"))),TVariant(1),TVariant("Item 4"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item 5"))),TVariant(1),TVariant("Item 6"));
G2antt1->EndUpdate();

1897
How can I display dates in DD/MM/YYYY format

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = false;
G2antt1->Columns->Add(L"Date");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_ItemDivider(var_Items->AddItem(TVariant("Different Date Formats")),0);
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"((shortdateF(value) mid 4) left 2) + `/` + (shortdateF (value) left 2) + `/` + (shortdateF (value) right 4)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"(1 array (0:=(shortdateF(value) split `/`))) + `/` + (0 array (=:0) ) + `/` + (2 array (=:0) )");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"((`0` + day(value) ) right 2) + `/` + ((`0` + month(value) ) right 2) + `/` + year(value)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"day(value) + `/` + month(value) + `/` + year(value)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"year(value) + ` - ` + day(value) + ` - ` + month(value)");
	long h = var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()));
	var_Items->set_ItemHeight(h,24);
	var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exHTML);
	var_Items->set_FormatCell(TVariant(h),TVariant(0),L"`<b>` + year(value) + `</b><off -4> ` + day(value) + ` - ` + month(value)");
	var_Items->set_ItemDivider(var_Items->AddItem(TVariant("Predefined Date Formats")),0);
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"value");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"shortdateF(value)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"shortdate(value)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"longdate(value)");
G2antt1->EndUpdate();

1896
I have noticed that the column gets resized once I release the mouse. I have a column that displays multiple-lines cells, and the text gets wrapped only when user releases the mouse. Is it possible to get resized contiguously as I had before
G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = false;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->ColumnsAllowSizing = true;
G2antt1->Columns->Add(L"Column A (cont)")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exColumnResizeContiguously,TVariant(true));
G2antt1->Columns->Add(L"Column 1");
G2antt1->Columns->Add(L"Column B (cont)")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exColumnResizeContiguously,TVariant(true));
G2antt1->Columns->Add(L"Column 2");
G2antt1->EndUpdate();

1895
How do I get the column from cursor, when it hovers the empty portion of the items section
// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long i = G2antt1->ItemFromPoint[0,-1,c,hit];
	OutputDebugString( L"Column" );
	OutputDebugString( L"c" );
}

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->Columns->Add(L"Column 0");
G2antt1->Columns->Add(L"Column 1");
G2antt1->Columns->Add(L"Column 2");
G2antt1->EndUpdate();

1894
How do I add items once the user clicks the empty area
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void __fastcall TForm1::G2antt1Click(TObject *Sender)
{
	long i = G2antt1->ItemFromPoint[0,-1,c,hit];
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(i))),TVariant(1),TVariant(c));
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Number of Items to Add");
G2antt1->Columns->Add(L"Click on Column");
G2antt1->EndUpdate();

1893
Is there an easy way to get an effect like in a Microsoft Access / SQL-Server Table view, where you can scroll-up till the last row containing data is displayed as top-row

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine;
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenKeyset,Adodb_tlb::LockTypeEnum::adLockReadOnly,0);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,10,21).operator double()));
	var_Chart->LevelCount = 2;
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->ScrollBars = Exg2anttlib_tlb::ScrollBarsEnum::exVScrollEmptySpace | Exg2anttlib_tlb::ScrollBarsEnum::exBoth;
G2antt1->ScrollPos[true] = G2antt1->Items->ItemCount;
G2antt1->EndUpdate();

1892
Is there any option to stop events
// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	OutputDebugString( L"AddItem event is fired only if FreezeEvents(False) is called" );
}

// AddLink event - Occurs when the user links two bars using the mouse.
void __fastcall TForm1::G2antt1AddLink(TObject *Sender,BSTR   LinkKey)
{
	OutputDebugString( L"AddLink event is fired only if FreezeEvents(False) is called" );
}

// BarResize event - Occurs when a bar is moved or resized.
void __fastcall TForm1::G2antt1BarResize(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key)
{
	OutputDebugString( L"BarResize event is fired only if FreezeEvents(False) is called" );
}

G2antt1->FreezeEvents(true);
G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();
G2antt1->FreezeEvents(false);

1891
How do I specify a more intensive color if using RenderType property

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -16777216;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDAMgBQKAAzQFAYahuGSGAAGMYxQgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQLOEgwH") +
"IERQjEyUJAGGQIHhyPYbUbGUpQHKkeRtGqgBgoKhKEouNYgAbGYIwTRsdyfDSXBpEWwbDgkNQwWTDNoRDIUQStCysaYjOpnfrUAJ1P7FdQ1NJkXRhGSSK7maapaiCSZ6" +
"STCMj1FhVKSNJ7DQKhGpgKh/ApgYpQOK4fLNXyRBK4QAyKA6bgPFZOZbFViaXY1V5bNKrcjhHQwAyHJ4XXRdV4YRAkUT4GqiJKGSYcQhuXZWbRqO6ABhef6DRThc6jKp" +
"FHIE4llEcojHqSZNgoIxnlgd5thsLREleL43gsYZ9BkaAYkMAgAm+CxGDWWAtiKCRfjcdRgHoHYnicUwgAIEIREAaQYkcQZUHIGRUDQJBOEYRAhDYCxGgMZAkCgdYQha" +
"XQIAYERwQuahXggdgeG6VZ4H4IhdiIGIOB8YIiGiHZZgqYpGF4KYHiKCI+CAU5jCiTQ2g0YhEFyax4gABAEIC"));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQG") +
"h+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKf" +
"aZACj4arKejrRDCMAggI="));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar->Color = 0x1000000;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar1->Color = 0x2000000;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummaryJ = var_Items->AddItem(TVariant("Summary A"));
	var_Items->AddBar(hSummaryJ,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("J"),TNoParam());
	long hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.1"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("J1"),TNoParam());
	hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.2"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("J2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryJ,TVariant("J"),-1,TVariant("<*>"));
	long hSummaryK = var_Items->AddItem(TVariant("Summary B"));
	var_Items->AddBar(hSummaryK,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("K"),TNoParam());
	long hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryK,TVariant("K"),-1,TVariant("<*>"));
	var_Items->set_ItemBar(0,TVariant("<K*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1890
How can I include the child items, when a filter is applied

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->ContinueColumnScroll = false;
G2antt1->MarkSearchColumn = false;
G2antt1->SearchColumnIndex = 1;
G2antt1->Indent = 16;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->FilterBarPromptVisible = true;
G2antt1->FilterBarPromptPattern = L"Nancy";
G2antt1->FilterInclude = Exg2anttlib_tlb::FilterIncludeEnum::exItemsWithChilds;
G2antt1->Chart->LevelCount = 2;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Name")->Width = 96;
	var_Columns->Add(L"Title")->Width = 96;
	var_Columns->Add(L"City");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h0 = var_Items->AddItem(TVariant("Nancy Davolio"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->InsertItem(h0,TNoParam(),TVariant("Andrew Fuller"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Vice President, Sales"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Tacoma"));
	h0 = var_Items->InsertItem(h0,TNoParam(),TVariant("Michael Suyama"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Janet Leverling"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Kirkland"));
	h0 = var_Items->InsertItem(h0,TNoParam(),TVariant("Margaret Peacock"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Redmond"));
	var_Items->set_ExpandItem(0,true);
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

1889
Is it possible to change the date format shown when you scroll the horizontal bar on the chart

G2antt1->Chart->ToolTip = L"<b>Date</b><br><%loc_ldate%>";

1888
How do I change the drop down filter icon/button (white)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgAN") +
"J0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8Y" +
"NYuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4" +
"hhKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mg" +
"bhOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhW" +
"BMJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI="));
	var_Appearance->Add(1,TVariant("CP:2 -4 -4 2 4"));
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = 0x1000000;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverColumn] = G2antt1->BackColor;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::None2;
G2antt1->BackColorHeader = RGB(255,255,255);
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
G2antt1->HeaderHeight = 24;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Filter");
	var_Column->DisplayFilterButton = true;
	var_Column->AllowSort = false;
	var_Column->AllowDragging = false;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,196);
	var_Chart->LevelCount = 2;
G2antt1->EndUpdate();

1887
How do I prevent changing the cell's state ( check-box state )

// CellStateChanging event - Fired before cell's state is about to be changed.
void __fastcall TForm1::G2antt1CellStateChanging(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,long *   NewState)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		NewState = var_Items->get_CellState(TVariant(Item),TVariant(ColIndex));
}

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"P1");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"P2");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column1->PartialCheck = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
G2antt1->EndUpdate();

1886
How do I change the color of the columns's header to cover all levels

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColorHeader;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DefaultItemHeight = 36;
G2antt1->TreeColumnIndex = -1;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C1");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column->Width = 24;
		var_Column->AllowSizing = false;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(3));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"C2");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(2));
	var_Columns->Add(L"Column1");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->BackColorLevelHeader = G2antt1->BackColorHeader;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2014,6,22).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 1.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 1.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,23).operator double()),TVariant(TDateTime(2014,6,25).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 2.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 2.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,26).operator double()),TVariant(TDateTime(2014,6,28).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1885
Is it possible to extend the columns's header to fill all levels

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DefaultItemHeight = 36;
G2antt1->TreeColumnIndex = -1;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C1");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column->Width = 24;
		var_Column->AllowSizing = false;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(3));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"C2");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(2));
	var_Columns->Add(L"Column1");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->BackColorLevelHeader = G2antt1->BackColorHeader;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2014,6,22).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 1.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 1.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,23).operator double()),TVariant(TDateTime(2014,6,25).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 2.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 2.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,26).operator double()),TVariant(TDateTime(2014,6,28).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1884
How do I change the color of the columns's header to cover all levels (sample CRD)

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColorHeader;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DefaultItemHeight = 36;
G2antt1->TreeColumnIndex = -1;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C1");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column->Width = 24;
		var_Column->AllowSizing = false;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(3));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"C2");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(2));
	var_Columns->Add(L"Column1")->Visible = false;
	var_Columns->Add(L"Column2")->Visible = false;
	var_Columns->Add(L"Column3")->Visible = false;
	Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"FormatLevel");
		var_Column2->FormatLevel = L"18;\"Info\"[a=17]/(2/3,4)";
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellFormatLevel,TVariant("2/3,4"));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2014,6,22).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->BackColorLevelHeader = G2antt1->BackColorHeader;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 1.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 1.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,23).operator double()),TVariant(TDateTime(2014,6,25).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 2.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 2.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,26).operator double()),TVariant(TDateTime(2014,6,28).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1883
Is it possible to extend the columns's header to fill all levels (sample CRD)

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DefaultItemHeight = 36;
G2antt1->TreeColumnIndex = -1;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C1");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column->Width = 24;
		var_Column->AllowSizing = false;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(3));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"C2");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(2));
	var_Columns->Add(L"Column1")->Visible = false;
	var_Columns->Add(L"Column2")->Visible = false;
	var_Columns->Add(L"Column3")->Visible = false;
	Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"FormatLevel");
		var_Column2->FormatLevel = L"18;\"Info\"[a=17]/(2/3,4)";
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellFormatLevel,TVariant("2/3,4"));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2014,6,22).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->BackColorLevelHeader = G2antt1->BackColorHeader;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 1.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 1.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,23).operator double()),TVariant(TDateTime(2014,6,25).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 2.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 2.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,26).operator double()),TVariant(TDateTime(2014,6,28).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1882
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Date");
	var_Column->SortType = Exg2anttlib_tlb::SortTypeEnum::SortDate;
	var_Column->DisplayFilterButton = true;
	var_Column->DisplayFilterPattern = false;
	var_Column->DisplayFilterDate = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"DateTime");
	var_Column1->SortType = Exg2anttlib_tlb::SortTypeEnum::SortDateTime;
	var_Column1->DisplayFilterButton = true;
	var_Column1->DisplayFilterPattern = false;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Time");
	var_Column2->SortType = Exg2anttlib_tlb::SortTypeEnum::SortTime;
	var_Column2->DisplayFilterButton = true;
	var_Column2->DisplayFilterPattern = false;
	var_Column2->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
	var_Column2->FormatColumn = L"time(value)";
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"Numeric");
	var_Column3->SortType = Exg2anttlib_tlb::SortTypeEnum::SortNumeric;
	var_Column3->DisplayFilterButton = true;
	var_Column3->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->Add(L"String");
	var_Column4->DisplayFilterButton = true;
	var_Column4->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(TDateTime(2010,1,27).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(TDateTime(2010,1,27,10,00,00,0).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(1))));
	var_Items->set_CellValue(TVariant(h),TVariant(3),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(4),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(3))));
	h = var_Items->AddItem(TVariant(TDateTime(2011,1,27).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(TDateTime(2011,1,27,9,00,00,0).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(1))));
	var_Items->set_CellValue(TVariant(h),TVariant(3),TVariant(11));
	var_Items->set_CellValue(TVariant(h),TVariant(4),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(3))));
	h = var_Items->AddItem(TVariant(TDateTime(2010,11,2).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(TDateTime(2010,11,2,9,00,00,0).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(1))));
	var_Items->set_CellValue(TVariant(h),TVariant(3),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(4),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(3))));
G2antt1->Columns->get_Item(TVariant("DateTime"))->DisplayFilterDate = false;
G2antt1->EndUpdate();

1881
Is there a way to set the time zone per item

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task A"));
	var_Items->AddBar(h1,TVariant(""),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,18).operator double()),TVariant("TZ1"),TVariant("Time Zone / Item"));
	var_Items->set_ItemBar(h1,TVariant("TZ1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelectable,TVariant(false));
	var_Items->set_ItemBar(h1,TVariant("TZ1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackColor,TVariant(255));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,20).operator double()),TVariant(TDateTime(2001,1,29).operator double()),TVariant("Z1"),TNoParam());
	h1 = var_Items->AddItem(TVariant("Task B"));
	var_Items->AddBar(h1,TVariant(""),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,24).operator double()),TVariant("TZ2"),TVariant("Time Zone / Item"));
	var_Items->set_ItemBar(h1,TVariant("TZ2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelectable,TVariant(false));
	var_Items->set_ItemBar(h1,TVariant("TZ2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackColor,TVariant(65535));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("Z1"),TNoParam());
G2antt1->EndUpdate();

1880
Is there a way to turn arrow-key-navigation between the items on and off
// KeyDown event - Occurs when the user presses a key while an object has the focus.
void __fastcall TForm1::G2antt1KeyDown(TObject *Sender,short *   KeyCode,short   Shift)
{
	KeyCode = 0;
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Tasks");
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Effort");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(21));
	var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->NonworkingDays = 0;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2005,6,20).operator double()));
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 128;
	var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->HistogramPattern = var_Bar->Pattern;
		var_Bar->HistogramType = Exg2anttlib_tlb::HistogramTypeEnum::exHistOverload;
		var_Bar->HistogramCriticalValue = 3;
		var_Bar->ShowHistogramValues = L"value>3?255:1";
		var_Bar->HistogramItems = -11;
		var_Bar->HistogramGridLinesColor = RGB(192,192,192);
		var_Bar->HistogramRulerLinesColor = RGB(0,0,1);
		var_Bar->FormatHistogramValues = L"value format `2`";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AllowCellValueToItemBar = true;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2005,6,21).operator double()),TVariant(TDateTime(2005,6,23).operator double()),TNoParam(),TNoParam());
	var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(6.79));
	h1 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2005,6,24).operator double()),TVariant(TDateTime(2005,6,26).operator double()),TNoParam(),TNoParam());
	var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(3.19));
	h1 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2005,6,27).operator double()),TVariant(TDateTime(2005,6,29).operator double()),TNoParam(),TNoParam());
	var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(2));
	h1 = var_Items->AddItem(TVariant("Task 4"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2005,6,30).operator double()),TVariant(TDateTime(2005,7,2).operator double()),TNoParam(),TNoParam());
	var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(1));
G2antt1->EndUpdate();

1879
I am using Layout property to sort multiple columns at once. The problem is that all items get expanded. How do I prevent that

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"P1");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"P2");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column1->PartialCheck = true;
	var_Column1->FormatColumn = L"1 index ``";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child A"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child B"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child A"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child B"));
	var_Items->AddItem(TVariant("Root"));
	var_Items->AddItem(TVariant("Root"));
G2antt1->SingleSort = false;
G2antt1->Layout = L"multiplesort=\"C0:1 C1:2\";collapse=\"\"";
G2antt1->EndUpdate();

1878
How can I decode the Layout property

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1");
	var_Columns->Add(L"C2")->Position = 1;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("SubItem 1.1"))),TVariant(1),TVariant("SubItem 1.2"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("SubItem 2.1"))),TVariant(1),TVariant("SubItem 2.2"));
G2antt1->Columns->get_Item(TVariant("C2"))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortDescending;
G2antt1->EndUpdate();
OutputDebugString( L"Encoded:" );
OutputDebugString( G2antt1->Layout );
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		ExPrint 1.0 Control Library

	TypeLib: ExPrint.dll

	to define the namespace: Exprintlib_tlb
*/
//#include "EXPRINTLIB_TLB.h"
Exprintlib_tlb::IExPrintPtr var_Print = Variant::CreateObject(L"Exontrol.Print");
	OutputDebugString( L"Decoded: " );
	OutputDebugString( var_Print->get_Decode64TextW(G2antt1->Layout) );

1877
Is it possible to define a bar inside a bar (method 2)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Task"))->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Tasks"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A1"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("A2"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A3"),TNoParam());
Exg2anttlib_tlb::INotesPtr var_Notes = G2antt1->Chart->Notes;
	Exg2anttlib_tlb::INotePtr var_Note = var_Notes->Add(TVariant("N1"),TVariant(G2antt1->Items->FirstVisibleItem),TVariant("A1"),L"");
		var_Note->set_PartText(Exg2anttlib_tlb::NotePartEnum::exNoteStart,L" ");
		var_Note->set_PartFixedWidth(Exg2anttlib_tlb::NotePartEnum::exNoteStart,18);
		var_Note->set_PartFixedHeight(Exg2anttlib_tlb::NotePartEnum::exNoteStart,11);
		var_Note->set_PartCanMove(Exg2anttlib_tlb::NotePartEnum::exNoteStart,true);
		var_Note->set_PartBackColor(Exg2anttlib_tlb::NotePartEnum::exNoteStart,RGB(0,255,0));
		var_Note->set_PartVisible(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,false);
		var_Note->ShowLink = Exg2anttlib_tlb::NoteLinkTypeEnum::exNoteLinkHidden;
		var_Note->set_PartVOffset(Exg2anttlib_tlb::NotePartEnum::exNoteStart,4);
G2antt1->EndUpdate();

1876
Is it possible to define a bar inside a bar (method 1)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar->OverlaidGroup = L"Task,TaskB";
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Add(L"Aka");
		var_Bar1->Color = RGB(0,255,0);
		var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid;
	Exg2anttlib_tlb::IBarPtr var_Bar2 = var_Chart->Bars->Add(L"Task%Aka");
		var_Bar2->Shortcut = L"TaskB";
		var_Bar2->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar2->OverlaidGroup = L"Task,TaskB";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Tasks"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A1"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarPercent,TVariant(0.25));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("A2"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A3"),TNoParam());
G2antt1->EndUpdate();

1875
How do I show the bar with a solid color, no border (method 1)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->Color = RGB(255,0,0);
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant(""),TNoParam());
G2antt1->EndUpdate();

1874
How do I show the bar with a solid color, no border (method 2)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->Color = RGB(255,0,0);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant(""),TNoParam());
G2antt1->EndUpdate();

1873
How do I show the bar with a solid color, no border (method 3)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -1;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABJkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyDQKkEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5AcgPfKgAAFESNY5gSL5Y") +
"j2IjrRDCMAggI"));
Exg2anttlib_tlb::IBarPtr var_Bar = G2antt1->Chart->Bars->get_Item(TVariant("Task"));
	var_Bar->Color = 0x10000ff;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant(""),TNoParam());
G2antt1->EndUpdate();

1872
How do I find the cell's type, or what the cell holds

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Value")->Width = 24;
	var_Columns->Add(L"Type")->FormatColumn = L"type(%0)";
	var_Columns->Add(L"TypeAsString")->FormatColumn = TVariant(String("(0 := type(%0)) array (`empty`, `null`, `short`, `long`, `float`, `double`, `currency`, `date`, `string`, `object`, `error`, `b") +
"oolean`, `variant`, `any`, `reserved`, `decimal`, `char`, `byte`, `unsigned short`, `unsigned long`, `long on 64 bits`)");
	var_Columns->Add(L"Length")->FormatColumn = L"len(%0)";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TNoParam());
	var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(->AddItem(TNoParam())),TVariant(0),G2antt1->DefaultDispatch);
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),TVariant(true));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),TVariant(-1));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),TVariant(-1));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),TVariant(TDateTime(2001,1,1).operator double()));
G2antt1->EndUpdate();

1871
Is it possible to allow changing the bar's parent while bar's start/end margins should stay unchanged
// BarParentChange event - Occurs just before moving a bar from current item to another item.
void __fastcall TForm1::G2antt1BarParentChange(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key,Exg2anttlib_tlb::HITEM   NewItem,VARIANT_BOOL *   Cancel)
{
	G2antt1->Items->set_SelectItem(NewItem,true);
	OutputDebugString( L"BarParentChange from " );
	OutputDebugString( G2antt1->Items->get_CellCaption(TVariant(Item),TVariant(0)) );
	OutputDebugString( L" to " );
	OutputDebugString( G2antt1->Items->get_CellCaption(TVariant(NewItem),TVariant(0)) );
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Members")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->AllowLinkBars = false;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,96);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanResize,TVariant(false));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Member <b>1</b>"));
	long h = var_Items->AddItem(TVariant("Member <b>2</b>"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,23).operator double()),TVariant("T102"),TVariant("Task <b>102</b>"));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanMove,TVariant(false));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanMoveToAnother,TVariant(true));
	var_Items->AddItem(TVariant("Member <b>3</b>"));
	var_Items->AddItem(TVariant("Member <b>4</b>"));
G2antt1->EndUpdate();

1870
Is it possible to (un)highlight the day/night shifts

// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void __fastcall TForm1::G2antt1Click(TObject *Sender)
{
	Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
		var_Chart->ShowNonworkingDates = false;
		var_Chart->ShowNonworkingHours = false;
		var_Chart->BackColor = RGB(255,255,255);
	G2antt1->Refresh();
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->UnitWidth = 64;
	var_Chart->set_PaneWidth(false,0);
	var_Chart->NonworkingHours = 15728895;
	var_Chart->NonworkingHoursPattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid;
	var_Chart->NonworkingDaysPattern = var_Chart->NonworkingHoursPattern;
	var_Chart->NonworkingHoursColor = RGB(240,240,240);
	var_Chart->NonworkingDaysColor = RGB(212,212,212);
	var_Chart->BackColor = RGB(250,250,250);
G2antt1->EndUpdate();

1869
How can I add a vertical line at specified date-time

Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,18);
	var_Chart->LevelCount = 2;
	var_Chart->UnitWidth = 32;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,1,1).operator double()));
	var_Chart->MarkTimeZone(TVariant("M1"),TVariant(TDateTime(2010,1,5).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant(16711680),TVariant("50:5;3"));
	var_Chart->MarkTimeZone(TVariant("M2"),TVariant(TDateTime(2010,1,6).operator double()),TVariant(TDateTime(2010,1,6).operator double()),TVariant(16711680),TVariant(":5"));
	var_Chart->MarkTimeZone(TVariant("M3"),TVariant(TDateTime(2010,1,7,10,00,00,0).operator double()),TVariant(TDateTime(2010,1,7,10,00,00,0).operator double()),TVariant(255),TVariant("50:3;;zone"));

1868
How do I clear all date-time zones
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void __fastcall TForm1::G2antt1Click(TObject *Sender)
{
	G2antt1->Chart->RemoveTimeZone(TVariant("<*>"));
}

// RClick event - Fired when right mouse button is clicked
void __fastcall TForm1::G2antt1RClick(TObject *Sender)
{
	G2antt1->Chart->RemoveTimeZone(TVariant("<Z*>"));
}

Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,18);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,1,1).operator double()));
	var_Chart->MarkTimeZone(TVariant("Z1"),TVariant(TDateTime(2010,1,4).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant(255),TNoParam());
	var_Chart->MarkTimeZone(TVariant("Z2"),TVariant(TDateTime(2010,1,11).operator double()),TVariant(TDateTime(2010,1,12).operator double()),TVariant(65280),TNoParam());
	var_Chart->MarkTimeZone(TVariant("M1"),TVariant(TDateTime(2010,1,7).operator double()),TVariant(TDateTime(2010,1,8).operator double()),TVariant(16711680),TVariant("50:5;3"));

1867
How do I place a comment above/bellow the bar (sample 4)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 26;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,64);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarVAlignCaption,TVariant(18));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant(" "));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaptionHAlign,TVariant(0));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaptionVAlign,TVariant(16));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant("<font ;6>user comment"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("K2"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant("<font ;6>user comment"));
G2antt1->EndUpdate();

1866
How do I place a comment above/bellow the bar (sample 3)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 26;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarVAlignCaption,TVariant(18));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaptionHAlign,TVariant(0));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaptionVAlign,TVariant(16));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("K2"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant("<font ;6>user comment"));
G2antt1->EndUpdate();

1865
How do I place a comment under the bar (sample 2)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 26;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,64);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarVAlignCaption,TVariant(18));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TVariant("<font ;6>user comment"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("K2"),TVariant("<font ;6>user comment"));
G2antt1->EndUpdate();

1864
How do I place a comment under the bar (sample 1)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 26;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarVAlignCaption,TVariant(18));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("K2"),TVariant("<font ;6>user comment"));
G2antt1->EndUpdate();

1863
I am using exBarCanMoveToAnother to allow a bar to be moved from one item to another. The question is if it is possible somehow to highlight the current bar can be dropped to (sample 2)

// BarParentChange event - Occurs just before moving a bar from current item to another item.
void __fastcall TForm1::G2antt1BarParentChange(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key,Exg2anttlib_tlb::HITEM   NewItem,VARIANT_BOOL *   Cancel)
{
	G2antt1->Items->set_SelectItem(NewItem,true);
	Cancel = G2antt1->ConditionalFormats->get_Item(TVariant("NOTRED"))->get_Verify(NewItem);
}

// ChartEndChanging event - Occurs after the chart has been changed.
void __fastcall TForm1::G2antt1ChartEndChanging(TObject *Sender,Exg2anttlib_tlb::BarOperationEnum   Operation)
{
	G2antt1->SelForeColor = 0x8000000e;
	G2antt1->SelBackColor = 0x8000000d;
	G2antt1->Chart->SelBackColor = G2antt1->SelBackColor;
	G2antt1->ConditionalFormats->Clear();
}

// ChartStartChanging event - Occurs when the chart is about to be changed.
void __fastcall TForm1::G2antt1ChartStartChanging(TObject *Sender,Exg2anttlib_tlb::BarOperationEnum   Operation)
{
	G2antt1->SelForeColor = G2antt1->ForeColor;
	G2antt1->SelBackColor = G2antt1->BackColor;
	Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
		var_Chart->SelBackColor = var_Chart->BackColor;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%0 contains `Allowed` ",TVariant("RED"));
		var_ConditionalFormat->Enabled = false;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = G2antt1->ConditionalFormats->Add(L"not ( %0 contains `Allowed` )",TVariant("NOTRED"));
		var_ConditionalFormat1->BackColor = 0x1fefefe;
		var_ConditionalFormat1->ChartBackColor = var_ConditionalFormat1->BackColor;
}

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABZkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyDQKkEwsACEIrjKCRShyCYZRrGUgRCKQahLEiTIhGUYJHgmK4tRoAUbyDBIGQSCCZYDmKA3f") +
"j0AI9P7FcgSABEEigNIxToOU4jFgeCR2TqQRK1BDQbQSFCaZrmMKIXICO40WBQFhTdLlRyBBKzLKtCyaBqWaZrWxZE72ZaFVTdOK6bDvGwoarid56X7beA2PgdZTjQi5" +
"cCxG5sLrTBZtYzfET3diOEYPQzHMpzDB7bxbGaXZBlGSZbjeGZBUjQc7yfSNMw/HqKZQ6cQwTAIgI"));
G2antt1->Columns->Add(L"Members")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->AllowLinkBars = false;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->AllowSelectObjects = Exg2anttlib_tlb::SelectObjectsEnum::exNoSelectObjects;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->Bars->get_Item(TVariant("Task"))->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsIncludeCaption | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Member <b>1</b>"));
	h = var_Items->AddItem(TVariant("Member <b>Allowed</b>"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,23).operator double()),TVariant("T102"),TVariant("Task <b>102</b>"));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanMoveToAnother,TVariant(true));
	h = var_Items->AddItem(TVariant("Member <b>Allowed</b>"));
	h = var_Items->AddItem(TVariant("Member <b>4</b>"));
G2antt1->EndUpdate();

1862
I am using exBarCanMoveToAnother to allow a bar to be moved from one item to another. The question is if it is possible somehow to highlight the current bar can be dropped to (sample 1)

// BarParentChange event - Occurs just before moving a bar from current item to another item.
void __fastcall TForm1::G2antt1BarParentChange(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key,Exg2anttlib_tlb::HITEM   NewItem,VARIANT_BOOL *   Cancel)
{
	G2antt1->Items->set_SelectItem(NewItem,true);
	Cancel = G2antt1->ConditionalFormats->get_Item(TVariant("NOTRED"))->get_Verify(NewItem);
}

// ChartEndChanging event - Occurs after the chart has been changed.
void __fastcall TForm1::G2antt1ChartEndChanging(TObject *Sender,Exg2anttlib_tlb::BarOperationEnum   Operation)
{
	G2antt1->SelForeColor = 0x8000000e;
	G2antt1->SelBackColor = 0x8000000d;
	G2antt1->Chart->SelBackColor = G2antt1->SelBackColor;
	G2antt1->ConditionalFormats->Clear();
}

// ChartStartChanging event - Occurs when the chart is about to be changed.
void __fastcall TForm1::G2antt1ChartStartChanging(TObject *Sender,Exg2anttlib_tlb::BarOperationEnum   Operation)
{
	G2antt1->SelForeColor = G2antt1->ForeColor;
	G2antt1->SelBackColor = G2antt1->BackColor;
	Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
		var_Chart->SelBackColor = var_Chart->BackColor;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%0 contains `Allowed` ",TVariant("RED"));
		var_ConditionalFormat->BackColor = RGB(255,128,128);
		var_ConditionalFormat->ChartBackColor = var_ConditionalFormat->BackColor;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = G2antt1->ConditionalFormats->Add(L"not ( %0 contains `Allowed` )",TVariant("NOTRED"));
		var_ConditionalFormat1->Enabled = false;
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Members")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->AllowLinkBars = false;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->AllowSelectObjects = Exg2anttlib_tlb::SelectObjectsEnum::exNoSelectObjects;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->Bars->get_Item(TVariant("Task"))->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsIncludeCaption | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Member <b>1</b>"));
	h = var_Items->AddItem(TVariant("Member <b>Allowed</b>"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,23).operator double()),TVariant("T102"),TVariant("Task <b>102</b>"));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanMoveToAnother,TVariant(true));
	h = var_Items->AddItem(TVariant("Member <b>Allowed</b>"));
	h = var_Items->AddItem(TVariant("Member <b>4</b>"));
G2antt1->EndUpdate();

1861
How can I check, if a specified item fits a specified conditional format expression
// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long h = G2antt1->ItemFromPoint[-1,-1,c,hit];
	OutputDebugString( PChar(G2antt1->ConditionalFormats->get_Item(TVariant("RED"))->get_Verify(h)) );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,3).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
G2antt1->Chart->SelBackColor = G2antt1->SelBackColor;
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%1 = 5",TVariant("RED"));
		var_ConditionalFormat->BackColor = RGB(255,128,128);
		var_ConditionalFormat->ChartBackColor = var_ConditionalFormat->BackColor;
G2antt1->EndUpdate();

1860
Is it possible to apply the conditional format on the items shown on the chart part of the control (sample 3)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,3).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%1 in (3,5)",TNoParam());
		var_ConditionalFormat->ApplyToBars = L"Task";
		var_ConditionalFormat->BarColor = RGB(255,0,0);
		var_ConditionalFormat->BarOverviewColor = RGB(255,0,0);
		var_ConditionalFormat->ForeColor = var_ConditionalFormat->BarColor;
		var_ConditionalFormat->Bold = true;
G2antt1->EndUpdate();

1859
Is it possible to apply the conditional format on the items shown on the chart part of the control (sample 2)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,3).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%1 in (3,5)",TNoParam());
		var_ConditionalFormat->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum(0x1);
		var_ConditionalFormat->BackColor = RGB(255,128,128);
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = var_ConditionalFormats->Add(L"%1 in (3,5)",TNoParam());
		var_ConditionalFormat1->ApplyToBars = L"Task";
		var_ConditionalFormat1->BarColor = RGB(255,0,0);
		var_ConditionalFormat1->BarOverviewColor = RGB(255,0,0);
		var_ConditionalFormat1->ChartBackColor = RGB(255,128,128);
G2antt1->EndUpdate();

1858
Is it possible to apply the conditional format on the items shown on the chart part of the control (sample 1)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,3).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
G2antt1->BackColorAlternate = RGB(240,240,240);
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->Chart->SelBackColor = G2antt1->SelBackColor;
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%1 in (3,5)",TNoParam());
		var_ConditionalFormat->ApplyToBars = L"Task";
		var_ConditionalFormat->BarColor = RGB(255,0,0);
		var_ConditionalFormat->BarOverviewColor = RGB(255,0,0);
		var_ConditionalFormat->BackColor = RGB(255,128,128);
		var_ConditionalFormat->ChartBackColor = RGB(255,128,128);
G2antt1->EndUpdate();

1857
How can I get ride / hide the image being dragged by OLE Drag and Drop
// OLEStartDrag event - Occurs when the OLEDrag method is called.
void __fastcall TForm1::G2antt1OLEStartDrag(TObject *Sender,Exg2anttlib_tlb::IExDataObject   *Data,long *   AllowedEffects)
{
	// Data.SetData("data to drag")
	AllowedEffects = 1;
}

G2antt1->OLEDropMode = Exg2anttlib_tlb::exOLEDropModeEnum::exOLEDropManual;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exDragDropAfter] = RGB(255,255,255);
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->Columns->Add(L"Default");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);

1856
How do I change the visual appearance of the split bars

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABEgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGMYhTgmFgAQhFcZQSB0Eg1BKMYwjOJgFgmEQxDQNIBQSLIYQiGSWZBGUBJDjWGgyQjOEByD") +
"IMRwjE6UZBgeCRViEMo9RrSEZSLAdGRFAaVYDdULBEACU5VRZQFCwTQcBhpIyoZpkECobh2TYgQjYNT1NSkLxeGoSbbuGhBQrOAw1XTEMhyDR0LTJM6bMBACqrBi2L4x" +
"URfOBRXLQAYbHjAZ7rSgacjKRpKRbmAV4Oh+O5pQjadp1TidNwHLoAK7nGwbbgmfwAZrAdjABj1HgBNS2dDkaabQrKEZ4XYAHAXVROOQTWIANb2XC4bwSLAwTJJYzjTh" +
"iC2GInFOOQckiVw6AeCIvHSBzkCwDxfE6WZ2jsehICadx5kGYZdDgMRrA2c4NmWY56jyGxgEQJIgGkGJHEGVByBkWoCjkNAAAQIQ2AYRoDGQJAoKuZYgBgRZHggHZqAk" +
"AZDjYGA7E8KB0kyB5LiiBgigiYhIgiQ4Jk4WIkn6CphjQDgbDmIwDBIMg3GMQ4uDaDZjgiZg6DIY5DGIPg/GQBAMneEJMFkFJqhGTppCYSoSmSSQ2EoPJlAMIhSDmZRE" +
"AyVYVk0eRkm+FpkmkdhehaTp4iSZQxiYRAODIMQODmJJxhqTwJjYbobmcCZGHKGxLjmVQDC+J4DiYeg8GGWYuH6H5oAoBoCgcTwimaBodmeGZongPRPCoCoOiOZ5qBII" +
"oiAuaZomkPoPGOToEiaaZKHaHYfiUA5OhMAAngoVh6iYKYqHqKoqmGWoGiOKRkHOKJ7D2TxKgaNotmuCpmFAPQrkqPh4iwaw6laOowmwOpwnSL4LmiXJ9D4TxbBqTozm" +
"0CxGjwPRtEsIJsjWT4Dlydo1C2Sx2l6N5uAOWpijIDpbhYQ42i4K4mmqOpukuMpnjIJIjmKco5m8S5WnaPZkDuSJ4h0S46FKcY8m+DAHAGPovkoUhgD4cILmsCpCnCTA" +
"2nKQgPhwFokh4JpjmsFpEDGDBnBqRpwgwWJ6kSKhZjie5FnGTIXCWR4yAmYh+D+D48g8HpLnMDJHDIPoylObwpWIY5/CyTJzkydw1kSIhzA6ZQ7E+fJrDWUZ0g0JxKks" +
"T5NDSPJTmUaRcmAN5Nn0FJ/lMdYNGcWpWnWHRaGAMZ2AQDoEDKNhLicVpViQDYnGqWpPl2HxFDQNwJgoLoGGaCcDInRdjMCuNYbovR2D2FyNgNIcAJC5FWKwNwcBqAzC" +
"WBoPgTA8BkEwFwN4HRjjyAMH8EgcQ5CaGIFoAAHQ3AgAAIAQBAQ=="));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABBYDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGMYhTgmFgAQhFcZQSB0Eg1BKMYwjOJgFgmEQxDQNIBQSLIYQiGSWZTgMYRSASI43RoMUIzV") +
"AcQxDEaIZLlGQYHgkNIhDJPcZ0VDUbQGBiQIRmIAHNBwJJUVZFdBDLQkQy5HapZDkECobA+CZQTzUUI1LS9WS1HYaRJle4YRDUMJyQjdV4TRINHQvMinYzqOzrOhaW5T" +
"SzLcqyCK0SxxR4AJ4yGobJjiQYJShXcxyDQ8dyZC7PQohG7ofxUAKDVjhMjZRQeMS9JCwaThHElRQHMyBdJkKA9Iq2WaGXBeeQ3JbNbzrYzHb5hHZgAzTOoWbzWFT8BJ" +
"OFOCAYGcJJjHGTh+C2H40AAL5ckyBQDFkKoWHYLw9iGTpGDUY4zkIdwbF8JhbgMc5hF6OJ8C6BhTkOcBAlsR4NnQaAflAIQJBQBoRgwdAdEcIYVEUQJBGYOBCBMYQUGg" +
"NhCEKB5FB4VBBgQXJgF+IAzA4Ig5GIQIQBwOxiGiIgngoYpIi4LoKiMA5KDIMwjEKakmk6OJkkmDpNgidgtgwI55AYJw5iQQwSEYNxkgiZJrEITppDSc4TkyCREmeFJk" +
"CkAkLmWAwWFoOolkkNheDuJJJDSb4YmIQ4UkaGZlFkVJVhqTR5jYYw7mWeQ1AkPAnEmVh1C6Z4JiYL4KGQYwQmOH5PBoBh2h0EIaAaBg8GMI5Ij6IpokoNoOiOaJDiaE" +
"oiA8KgegGIRpGoZoaiaaZDmCdYlGkZAmgmKJqEqFomimaoKCaIoqGqSo2iwQhknqRoyiyaxKlaNotk8OpCjiLprkqbQJD0LALAaQowmwSwWkaMZQhOVpKjKbJLDaTozm" +
"0CxFAkPYtEsVpWjWbYLGaWo2lCGRil6N5pAuBpiDsbhLH6Zo3G4ax6HhYgpFibYjCWa4ml4QhPguVp2D4b4Li6bYPmiSZWngPhvGuWQJj+b5zmsBo+iePAmDCIwoGwGJ" +
"6kEL4MA8EJDjCC46FWQwoBObwGkQD4UCcDpDg+PIHBWPpiHwYJxD+MgcH8BpH4cBJ7kicIrnKC4hg+fIjCoPoQhyOwuD8M5CnMPpJCMCIIkOOQOlOfw1k6MnJDwPw0GO" +
"fhvDGdQNAIKdalOAJfDedJdC8SxCeyNJQleZhdEoJ4iEyLYWlWVx0GQJJslqTQtjcVJYi6aZ8mMM43EmFwCECJkfYyWiDuAuG0EgdBNB8AYHYMgxwEM1EAIAgIA=="));
	var_Appearance->Add(3,TVariant("CP:2 -2 -2 2 2"));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarsPtr var_Bars = var_Chart->Bars;
		Exg2anttlib_tlb::IBarPtr var_Bar = var_Bars->Add(L"A");
			var_Bar->Height = 15;
			var_Bar->Color = 0x2000000;
			var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBDiagonal;
		Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Bars->Add(L"Task:A");
			var_Bar1->Shortcut = L"Task";
			var_Bar1->Height = 15;
			var_Bar1->Color = 0x1000000;
			var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true));
	var_Chart->NonworkingDaysColor = RGB(240,240,240);
	var_Chart->SelBarColor = RGB(0,0,255);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TNoParam(),TNoParam());
	long h = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(65535));
	h = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelected,TVariant(true));
	h = var_Items->AddItem(TVariant("Task 4"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarNonWorkingColor,TVariant(58753152));
	h = var_Items->AddItem(TVariant("Task 5"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarNonWorkingColor,TVariant(25198720));
	h = var_Items->AddItem(TVariant("Task 6"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarNonWorkingColor,TVariant(2130771712));
G2antt1->EndUpdate();

1855
Is there a way to display automatically the duration ( days, hours, minutes ) of the bar next to it

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks");
	var_Column->AllowSizing = false;
	var_Column->Width = 36;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,4,6).operator double()));
	var_Chart->LevelCount = 2;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Add(L"Task:Progress");
		var_Bar->Shortcut = L"TaskS";
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant(String("<%=((1:=int(0:= (%258))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != ") +
"0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')%>"));
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("TaskS"),TVariant(TDateTime(2009,4,10,2,30,00,0).operator double()),TVariant(TDateTime(2009,4,16,2,30,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("TaskS"),TVariant(TDateTime(2009,4,14,9,00,00,0).operator double()),TVariant(TDateTime(2009,4,22,10,10,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true));
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
G2antt1->EndUpdate();

1854
Is there a way to display automatically the duration ( days, hours, minutes ) of the bar next to it

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks");
	var_Column->AllowSizing = false;
	var_Column->Width = 36;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,4,6).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
	var_Chart->Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant(String("<%=((1:=int(0:= (%513))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != ") +
"0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')%>"));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2009,4,6,2,30,00,0).operator double()),TVariant(TDateTime(2009,4,6,12,35,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2009,4,6,9,00,00,0).operator double()),TVariant(TDateTime(2009,4,6,10,10,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
G2antt1->EndUpdate();

1853
Does it support single or multiple split pane views

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = RGB(128,128,128);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = RGB(40,40,40);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,76);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternShadow;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolidDown;
		var_Bar->Color = RGB(0,0,255);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
	var_Chart->AllowSplitPane = Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowTwoSplitPane | Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowOneSplitPane;
	var_Chart->SplitPaneWidth = L"128,128";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,2,23).operator double()),TVariant(TDateTime(2001,2,27).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
G2antt1->EndUpdate();

1852
How can I programmatically add more split panes ( by code)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = RGB(128,128,128);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,76);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternShadow;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolidDown;
		var_Bar->Color = RGB(0,0,255);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
	var_Chart->AllowSplitPane = Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowOneSplitPane;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,2,23).operator double()),TVariant(TDateTime(2001,2,27).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
Exg2anttlib_tlb::IChartPtr var_Chart1 = G2antt1->Chart;
	var_Chart1->ScrollTo(var_Chart1->get_EndPrintDate(),TVariant(1));
	var_Chart1->SplitPaneWidth = L"128,128,128";
	var_Chart1->ScrollTo(var_Chart1->get_StartPrintDate(),TVariant(1));
G2antt1->EndUpdate();

1851
How can I programmatically add a split pane, or adding a split view at runtime

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = RGB(40,40,40);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,76);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternShadow;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolidDown;
		var_Bar->Color = RGB(0,0,255);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
	var_Chart->AllowSplitPane = Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowOneSplitPane;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,2,23).operator double()),TVariant(TDateTime(2001,2,27).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
Exg2anttlib_tlb::IChartPtr var_Chart1 = G2antt1->Chart;
	var_Chart1->ScrollTo(var_Chart1->get_EndPrintDate(),TVariant(1));
	var_Chart1->SplitPaneWidth = L"128";
	var_Chart1->ScrollTo(var_Chart1->get_StartPrintDate(),TVariant(1));
G2antt1->EndUpdate();

1850
Is there any way, property, procedure or anything else to split the control into multiple views

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = RGB(40,40,40);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,76);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternShadow;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolidDown;
		var_Bar->Color = RGB(0,0,255);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
	var_Chart->AllowSplitPane = Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowOneSplitPane;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,2,23).operator double()),TVariant(TDateTime(2001,2,27).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
G2antt1->EndUpdate();

1849
It appears that I can not use the ItemFromPoint property in my environment. What else I can do

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	OutputDebugString( PChar(G2antt1->ExecuteTemplate(L"Dim c, hit; ItemFromPoint(-1,-1, c, hit )")) );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
G2antt1->EndUpdate();

1848
How can I change the color for selected links (ebn)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -2;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAEGg4BNkMQAAYAQGKIYBkAKBQAGaAoDDYNQwQwAAwjIKEEwsACEIrjKCVIgkHYJRjGEZxMAsEwjAoaQChEZRUhEMgxDDIIxAJIcaw0GSEZwgOQZB") +
"iOEYnDANMgzDLMZR7DajYymSA6LiKNo+QjKFB0NLMVRtEIIIzCSCaNomT4DS4NIi2DYcVhhMqBYbtCZZBo2FpZUxXdL0BJMVxbHKYJikW4pVjoAJ+TxccjVDQNJyLQ6r" +
"YzuAAKNpuO58RbdGDQHA9KyfLCEcTxYAMbp6X5kaBZVp2VCMRzbTLUIDzPNVCTrNIaJioAaMeiCG5NUzieqRNalLABFjZMIHDbtGynDIJZruW52+CLIZpWbEOiRXr2Tx" +
"xgGYp5Fie5mAYBgIgSFDrDOIZUmQZYiECXJUjIEQ3lUGgbEIRQcg+Hg8DEFxYFuOR/i+X5znufh/omBgCgCVwjn4BoBmCCAmAqApgkefgMgOYQID4DoELsUgTgUYYIC4" +
"F4GGGSAaBuBxhhgfgggUYgog4EYJGIaBJn6ChiBiLgsgkIpoj4J4BCMSJWDaDZjgiZgCEAQCAgA=="));
	var_Appearance->Add(2,TVariant("CP:1 -2 -2 2 2"));
G2antt1->DefaultItemHeight = 24;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->NonworkingDays = 0;
	var_Chart->LinksStyle = Exg2anttlib_tlb::LinkStyleEnum::exLinkSolid;
	var_Chart->LinksWidth = 2;
	var_Chart->SelLinkColor = 0x20000ff;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkSelected,TVariant(true));
	long h3 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h3,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L2"),h2,TVariant(""),h3,TVariant(""));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

1847
How can I change the color for selected links (color, no frame)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->NonworkingDays = 0;
	var_Chart->LinksStyle = Exg2anttlib_tlb::LinkStyleEnum::exLinkSolid;
	var_Chart->LinksWidth = 2;
	var_Chart->SelLinkColor = 0x7f0000ff;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkSelected,TVariant(true));
	long h3 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h3,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L2"),h2,TVariant(""),h3,TVariant(""));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

1846
How can I change the color for selected links (color, frame)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->NonworkingDays = 0;
	var_Chart->LinksStyle = Exg2anttlib_tlb::LinkStyleEnum::exLinkSolid;
	var_Chart->LinksWidth = 2;
	var_Chart->SelLinkColor = RGB(255,0,0);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkSelected,TVariant(true));
	long h3 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h3,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L2"),h2,TVariant(""),h3,TVariant(""));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

1845
By default, the bar gets selected once the user releases the button of the mouse. Is it possible to change this behavior so the bar gets selected once the user presses the button of the mouse
// MouseDown event - Occurs when the user presses a mouse button.
void __fastcall TForm1::G2antt1MouseDown(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long h = G2antt1->ItemFromPoint[-1,-1,c,hit];
	TVariant b = TVariant(G2antt1->Chart->get_BarFromPoint(-1,-1));
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelected,TVariant(false));
		var_Items->set_ItemBar(h,TVariant(b),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelected,TVariant(true));
}

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 32;
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAEGg4BNkMQAAYAQGKIYBkAKBQAGaAoDDYNQwQwAAwjIKEEwsACEIrjKCVIgkHYJRjGEZxMAsEwjAoaQChEZRUhEMgxDDIIxAJIcaw0GSEZwgOQZB") +
"iOEYnDANMgzDLMZR7DajYymSA6LiKNo+QjKFB0NLMVRtEIIIzCSCaNomT4DS4NIi2DYcVhhMqBYbtCZZBo2FpZUxXdL0BJMVxbHKYJikW4pVjoAJ+TxccjVDQNJyLQ6r" +
"YzuAAKNpuO58RbdGDQHA9KyfLCEcTxYAMbp6X5kaBZVp2VCMRzbTLUIDzPNVCTrNIaJioAaMeiCG5NUzieqRNalLABFjZMIHDbtGynDIJZruW52+CLIZpWbEOiRXr2Tx" +
"xgGYp5Fie5mAYBgIgSFDrDOIZUmQZYiECXJUjIEQ3lUGgbEIRQcg+Hg8DEFxYFuOR/i+X5znufh/omBgCgCVwjn4BoBmCCAmAqApgkefgMgOYQID4DoELsUgTgUYYIC4" +
"F4GGGSAaBuBxhhgfgggUYgog4EYJGIaBJn6ChiBiLgsgkIpoj4J4BCMSJWDaDZjgiZgCEAQCAgA=="));
	var_Appearance->Add(2,TVariant("CP:1 -2 -2 2 2"));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->AllowSelectObjects = Exg2anttlib_tlb::SelectObjectsEnum::exNoSelectObjects;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2002,1,1).operator double()));
	var_Chart->SelBarColor = 0x2000000;
	var_Chart->set_PaneWidth(false,48);
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2002,1,2).operator double()),TVariant(TDateTime(2002,1,4).operator double()),TVariant("A"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2002,1,6).operator double()),TVariant(TDateTime(2002,1,10).operator double()),TVariant("B"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2002,1,11).operator double()),TVariant(TDateTime(2002,1,14).operator double()),TVariant("C"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("B"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelected,TVariant(true));
G2antt1->EndUpdate();

1844
How can I change the bar's color (sample 3, ebn, individual, global)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -2;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDAMgBQKAAzQFAYahuGSGAAGMYxQgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQLOEgwH") +
"IERQjEyUJAGGQIHhyPYbUbGUpQHKkeRtGqgBgoKhKEouNYgAbGYIwTRsdyfDSXBpEWwbDgkNQwWTDNoRDIUQStCysaYjOpnfrUAJ1P7FdQ1NJkXRhGSSK7maapaiCSZ6" +
"STCMj1FhVKSNJ7DQKhGpgKh/ApgYpQOK4fLNXyRBK4QAyKA6bgPFZOZbFViaXY1V5bNKrcjhHQwAyHJ4XXRdV4YRAkUT4GqiJKGSYcQhuXZWbRqO6ABhef6DRThc6jKp" +
"FHIE4llEcojHqSZNgoIxnlgd5thsLREleL43gsYZ9BkaAYkMAgAm+CxGDWWAtiKCRfjcdRgHoHYnicUwgAIEIREAaQYkcQZUHIGRUDQJBOEYRAhDYCxGgMZAkCgdYQha" +
"XQIAYERwQuahXggdgeG6VZ4H4IhdiIGIOB8YIiGiHZZgqYpGF4KYHiKCI+CAU5jCiTQ2g0YhEFyax4gABAEIC"));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQG") +
"h+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKf" +
"aZACj4arKejrRDCMAggI="));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar->Color = 0x1000000;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar1->Color = 0x2000000;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummaryJ = var_Items->AddItem(TVariant("Summary A"));
	var_Items->AddBar(hSummaryJ,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("J"),TNoParam());
	long hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.1"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("J1"),TNoParam());
	hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.2"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("J2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryJ,TVariant("J"),-1,TVariant("<*>"));
	long hSummaryK = var_Items->AddItem(TVariant("Summary B"));
	var_Items->AddBar(hSummaryK,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("K"),TNoParam());
	long hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryK,TVariant("K"),-1,TVariant("<*>"));
	var_Items->set_ItemBar(0,TVariant("<K*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1843
How can I change the bar's color (sample 2, global)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar->Color = RGB(255,0,0);
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar1->Color = RGB(255,0,0);
		var_Bar1->StartColor = var_Bar1->Color;
		var_Bar1->EndColor = var_Bar1->Color;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummaryJ = var_Items->AddItem(TVariant("Summary A"));
	var_Items->AddBar(hSummaryJ,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("J"),TNoParam());
	long hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.1"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("J1"),TNoParam());
	hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.2"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("J2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryJ,TVariant("J"),-1,TVariant("<*>"));
	long hSummaryK = var_Items->AddItem(TVariant("Summary B"));
	var_Items->AddBar(hSummaryK,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("K"),TNoParam());
	long hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryK,TVariant("K"),-1,TVariant("<*>"));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1842
How can I change the bar's color (sample 1, individual)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	var_Chart->Bars->get_Item(TVariant("Summary"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummaryJ = var_Items->AddItem(TVariant("Summary A"));
	var_Items->AddBar(hSummaryJ,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("J"),TVariant("  (default)"));
	long hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.1"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("J1"),TVariant("(default)"));
	hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.2"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("J2"),TVariant("(default)"));
	var_Items->DefineSummaryBars(hSummaryJ,TVariant("J"),-1,TVariant("<*>"));
	long hSummaryK = var_Items->AddItem(TVariant("Summary B"));
	var_Items->AddBar(hSummaryK,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("K"),TNoParam());
	long hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryK,TVariant("K"),-1,TVariant("<*>"));
	var_Items->set_ItemBar(hSummaryK,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	var_Items->set_ItemBar(0,TVariant("<K*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1841
How do I make the control read-only (method 2)

// Edit event - Occurs just before editing the focused cell.
void __fastcall TForm1::G2antt1Edit(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,VARIANT_BOOL *   Cancel)
{
	Cancel = true;
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Editor")->Editor;
	var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckListType;
	var_Editor->AddItem(1,L"One",TNoParam());
	var_Editor->AddItem(2,L"Two",TNoParam());
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor1 = var_Column->Editor;
		var_Editor1->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor1->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue1,TVariant(2));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(1))),TVariant(1),TVariant(0));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(2))),TVariant(1),TVariant(1));
G2antt1->EndUpdate();

1840
How do I make the control read-only (method 1)

G2antt1->BeginUpdate();
G2antt1->ReadOnly = Exg2anttlib_tlb::ReadOnlyEnum::exReadOnly;
Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Editor")->Editor;
	var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckListType;
	var_Editor->AddItem(1,L"One",TNoParam());
	var_Editor->AddItem(2,L"Two",TNoParam());
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor1 = var_Column->Editor;
		var_Editor1->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor1->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue1,TVariant(2));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(1))),TVariant(1),TVariant(0));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(2))),TVariant(1),TVariant(1));
G2antt1->EndUpdate();

1839
The ReadOnly property does not prevent changing the column's check-box (sample 2)

G2antt1->BeginUpdate();
G2antt1->ShowFocusRect = false;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"C1");
	var_Column->AllowSizing = false;
	var_Column->Width = 18;
	var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
G2antt1->Columns->Add(L"C2");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(0))),TVariant(1),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(-1))),TVariant(1),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(0))),TVariant(1),TVariant("Item 3"));
G2antt1->ReadOnly = Exg2anttlib_tlb::ReadOnlyEnum::exReadOnly;
G2antt1->Columns->get_Item(TVariant(0))->Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(2));
G2antt1->EndUpdate();

1838
The ReadOnly property does not prevent changing the column's check-box (sample 1)

G2antt1->BeginUpdate();
G2antt1->ShowFocusRect = false;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"C1");
	var_Column->AllowSizing = false;
	var_Column->Width = 18;
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1));
G2antt1->Columns->Add(L"C2");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(0))),TVariant(1),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(-1))),TVariant(1),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(0))),TVariant(1),TVariant("Item 3"));
G2antt1->ReadOnly = Exg2anttlib_tlb::ReadOnlyEnum::exReadOnly;
G2antt1->EndUpdate();

1837
How can I change the visual appearance of the control's split bar (sample 3)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Default");
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABPsIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRrGUQxCKIZhzEgYRokAYYRDIMg5SBIETzFIMCQ9AaaJpieRJG") +
"iiKoJSxHErgFD8QxzEKOZqnCapViAMpOAZQAwDAIoWhpKKBRhqOpRUhaID/WAAFCUZK4ASTDCyLRgNy4lACgI"));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABPkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRrGUQxCKIZhzEgYRoiEYhXDiIAxARHcgyBIMPQJGSaZpkSRpI") +
"iqHItS6BM4RVKkcw7G6BaJnGJpADKTQGQiMIwDAIoWhpKCBaiqSpqMglf5fg6pOJqHACZZKWLNLpxDBMAkBA="));
	var_Appearance->Add(3,TVariant(String("gBFLBCJwBAEHhEJAAEhABUUIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRrGQCwTCIYhmHKSRhGSIRSDcOIgDCBEbyDIEQw9AiZZqmaRZH") +
"imK4cS5MEhwHKsLSLGyOZwoSapbgmJooU5KUwSYKQcxBI6laYpIAKJhiWobTxUEBwMKlJw5KoBJxjKqIbp2XZsUxIAxXEA1HBgGASRZGS5bDreeQ0UZCL74GAFUy/Lib" +
"a6weqnLhGCYBgIA=="));
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = 0x1808080;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHSplitBar] = 0x2808080;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = 0x3010101;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 64;
	var_Chart->OverviewHeight = 48;
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAll;
G2antt1->EndUpdate();

1836
How can I change the color for the control's split bar (sample 2)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Default");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = RGB(190,190,190);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHSplitBar] = RGB(128,128,128);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = RGB(0,0,1);
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 64;
	var_Chart->OverviewHeight = 48;
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAll;
G2antt1->EndUpdate();

1835
How do I highlight a bar with an icon, exclamation mark or some warning sign, without using exBarCaption, exBarExtraCaption which I've already use for something else ( sample 2 )

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,26).operator double()));
	var_Chart->set_PaneWidth(false,128);
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	long h = var_Items->AddItem(TVariant("Item"));
	var_Items->AddItem(TVariant(""));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,1).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A"),TNoParam());
Exg2anttlib_tlb::INotesPtr var_Notes = G2antt1->Chart->Notes;
	Exg2anttlib_tlb::INotePtr var_Note = var_Notes->Add(TVariant("Attention"),TVariant(G2antt1->Items->get_ItemByIndex(1)),TVariant("A"),L" <font ;11>! ");
		var_Note->set_RelativePosition(TVariant(0.5));
		var_Note->ShowLink = Exg2anttlib_tlb::NoteLinkTypeEnum::exNoteLinkHidden;
		var_Note->set_PartVOffset(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,0);
		var_Note->set_PartShadow(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,false);
		var_Note->set_PartBackColor(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,RGB(255,255,0));
G2antt1->EndUpdate();

1834
How do I highlight a bar with an icon, exclamation mark or some warning sign, without using exBarCaption, exBarExtraCaption which I've already use for something else ( sample 1 )

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,26).operator double()));
	var_Chart->set_PaneWidth(false,128);
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	long h = var_Items->AddItem(TVariant("Item"));
	var_Items->AddItem(TVariant(""));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,1).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("[text=`<bgcolor=FFFF00><font ;11> ! `,align=0x11]"));
	var_Items->set_ItemBar(h,TVariant("A"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExtInflate,TVariant(8));
G2antt1->EndUpdate();

1833
How do I get the "Summary" bar being shown in the control's histogram (sample 2)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQG") +
"h+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKf" +
"aZACj4arKejrRDCMAggI="));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 64;
	var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramNoGrouping | Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->HistogramPattern = var_Bar->Pattern;
		var_Bar->HistogramType = Exg2anttlib_tlb::HistogramTypeEnum::exHistCumulative;
		var_Bar->HistogramCumulativeOriginalColorBars = Exg2anttlib_tlb::HistogramCumulativeOriginalColorBarsEnum::exKeepOriginalColor;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(hSummary,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(16777216));
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,12).operator double()),TVariant(TDateTime(2001,1,17).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
G2antt1->EndUpdate();

1832
How do I get the "Summary" bar being shown in the control's histogram (sample 1)

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQG") +
"h+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKf" +
"aZACj4arKejrRDCMAggI="));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 64;
	var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramNoGrouping | Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->HistogramPattern = var_Bar->Pattern;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar1->Color = 0x1000000;
		var_Bar1->HistogramColor = RGB(0,0,1);
		var_Bar1->HistogramPattern = Exg2anttlib_tlb::PatternEnum::exPatternBDiagonal;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,12).operator double()),TVariant(TDateTime(2001,1,17).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
G2antt1->EndUpdate();

1831
How can I temporarily/programmatically hide the control's tooltip

// RClick event - Fired when right mouse button is clicked
void __fastcall TForm1::G2antt1RClick(TObject *Sender)
{
	long nToolTipDelay = G2antt1->ToolTipDelay;
	G2antt1->ToolTipDelay = 0;
	G2antt1->ToolTipDelay = nToolTipDelay;
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Column w/h tooltip...")->ToolTip = L"This is a bit of text that's shown when the cursor hovers the column.<br><br><sha ;;0><c>Right-Click to hide it</sha>";
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->FirstWeekDay = var_Chart->LocFirstWeekDay;
	var_Chart->MonthNames = var_Chart->LocMonthNames;
	var_Chart->WeekDays = var_Chart->LocWeekDays;
	var_Chart->AMPM = var_Chart->LocAMPM;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->EndUpdate();

1830
Is it possible to find out the handle of the item, giving the key of the bar only

G2antt1->BeginUpdate();
G2antt1->Debug = true;
G2antt1->DefaultItemHeight = 32;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->Bars->get_Item(TVariant("Task"))->Height = 16;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->ShowLinks = Exg2anttlib_tlb::ShowExtendedLinksEnum::exShowExtendedLinks;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("K1"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("K2"),TNoParam());
	var_Items->set_ItemBold(var_Items->get_ItemBar(0,TVariant("K2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarParent),true);
G2antt1->EndUpdate();

1829
How can I programmatically add a link between two bars, knowing the keys of these bars only

G2antt1->BeginUpdate();
G2antt1->Debug = true;
G2antt1->DefaultItemHeight = 32;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->Bars->get_Item(TVariant("Task"))->Height = 16;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->ShowLinks = Exg2anttlib_tlb::ShowExtendedLinksEnum::exShowExtendedLinks;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("K1"),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("AK2"),TNoParam());
	long h3 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h3,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("AK3"),TNoParam());
	var_Items->AddLink(TVariant("Link1"),0,TVariant("K1"),0,TVariant("AK2"));
	var_Items->AddLink(TVariant("Link2"),0,TVariant("K1"),0,TVariant("<A?3>"));
	var_Items->AddLink(TVariant("Link3"),0,TVariant("<*2>"),0,TVariant("AK3"));
G2antt1->EndUpdate();

1828
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 3)

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAny;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exSolidLine;
G2antt1->Indent = 16;
G2antt1->MarkSearchColumn = false;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->FormatColumn = L"((1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 + `` :  (=:0 mid (1 + 1 + =:1) )  + `)` ) + ` ` + value";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_ExpandItem(0,true);
	h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_CellState(TVariant(hChild),TVariant(0),1);
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

1827
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 2)

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->GridLineColor = RGB(190,190,190);
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAny;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exSolidLine;
G2antt1->Indent = 16;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Default");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingRight,TVariant(4));
		var_Column->AllowSizing = false;
		var_Column->Width = 36;
		var_Column->Position = 0;
		var_Column->FormatColumn = TVariant(String("(1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 : (`............` left 2 * (=:0 count `.`)) + (=:0 mid (1 + 1 + =") +
":1) ) ");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_ExpandItem(0,true);
	h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_CellState(TVariant(hChild),TVariant(0),1);
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

1826
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 1)

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAny;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exSolidLine;
G2antt1->Indent = 16;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Default");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingRight,TVariant(4));
		var_Column->Alignment = Exg2anttlib_tlb::AlignmentEnum::RightAlignment;
		var_Column->AllowSizing = false;
		var_Column->Width = 24;
		var_Column->Position = 0;
		var_Column->FormatColumn = L"(1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 : `<i>` + (=:0 mid (1 + 1 + =:1) ) ";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_ExpandItem(0,true);
	h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_CellState(TVariant(hChild),TVariant(0),1);
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

1825
How can I programmatically group by columns, without having the control's sort bar visible

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->SortBarHeight = 0;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->AllowGroupBy = true;
G2antt1->Layout = L"multiplesort=\"C1:2\"";
G2antt1->EndUpdate();

1824
How do I perform my own sort

// Sort event - Fired when the control sorts a column.
void __fastcall TForm1::G2antt1Sort(TObject *Sender)
{
	OutputDebugString( L"Sort" );
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemPosition(var_Items->get_ItemByIndex(1),0);
		var_Items->set_ItemPosition(var_Items->get_ItemByIndex(0),1);
}

G2antt1->BeginUpdate();
G2antt1->SingleSort = false;
G2antt1->SortOnClick = Exg2anttlib_tlb::SortOnClickEnum::exUserSort;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Index")->FormatColumn = L"0 index ``";
	var_Columns->Add(L"Data 1");
	var_Columns->Add(L"Data 2");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(0));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(3));
	h = var_Items->AddItem(TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(6));
	h = var_Items->AddItem(TVariant(7));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(8));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(9));
G2antt1->Layout = L"multiplesort=\"C1:1 C2:2\"";
G2antt1->EndUpdate();

1823
Is it possible to have a different alignment for parts of the cell's caption

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,true);
G2antt1->TreeColumnIndex = -1;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellHAlignment(TVariant(var_Items->AddItem(TVariant("all-left"))),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::LeftAlignment);
	var_Items->set_CellHAlignment(TVariant(var_Items->AddItem(TVariant("all-center"))),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::CenterAlignment);
	var_Items->set_CellHAlignment(TVariant(var_Items->AddItem(TVariant("all-right"))),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::RightAlignment);
	long h = var_Items->AddItem(TVariant("left<c>center<r>right"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exHTML);
G2antt1->EndUpdate();

1822
I have a column with Def(exCellSingleLine) property on False, word-wrapping, and I am wondering if possible to update the column's content while user is resizing it
G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"MultipleLine");
		var_Column->Width = 32;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellSingleLine,TVariant(false));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exColumnResizeContiguously,TVariant(true));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"SingleLine");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellSingleLine,TVariant(false));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("This is a bit of long text that should break the line"))),TVariant(1),TVariant("This is a bit of long text that should break the line"));
G2antt1->EndUpdate();

1821
Is there an other way to detect if a bar is overlapping any other bar

// BarResizing event - Occurs when a bar is moving or resizing.
void __fastcall TForm1::G2antt1BarResizing(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key)
{
	G2antt1->Refresh();
}

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->DefaultItemHeight = 22;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Intersect / Count");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarKey,TVariant("A"));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(521));
	var_Column->set_LevelKey(TVariant(1));
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L" / With");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarKey,TVariant("A"));
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(520));
	var_Column1->set_LevelKey(TVariant(1));
G2antt1->Items->AllowCellValueToItemBar = true;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,148);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsOffset;
		var_Bar->OverlaidGroup = L"TaskB";
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(16));
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Add(L"TaskB");
		var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBDiagonal;
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("B"),TVariant("B"));
	h = var_Items->AddItem(TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,9).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,10).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("B"),TVariant("B"));
	h = var_Items->AddItem(TVariant("A"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,9).operator double()),TVariant("B1"),TVariant("B1"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,10).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,10).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("B2"),TVariant("B2"));
	h = var_Items->AddItem(TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TVariant("B1"),TVariant("B1"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,10).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,12).operator double()),TVariant(TDateTime(2001,1,15).operator double()),TVariant("B2"),TVariant("B2"));
G2antt1->EndUpdate();

1820
How can I get the absolute position of an item
// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,1,2).operator double()),TVariant(TDateTime(2017,1,5).operator double()),TNoParam(),TNoParam());
}

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		OutputDebugString( var_Items->get_CellCaption(TVariant(G2antt1->get_ItemFromPoint(-1,-1,c,hit)),TVariant("Position")) );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,1,1).operator double()));
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->BackColorAlternate = RGB(240,240,240);
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->Columns->Add(L"Def")->DisplayFilterButton = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")),TNoParam(),TVariant("Sub-Child 1"));
	var_Items->InsertItem(var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")),TNoParam(),TVariant("Sub-Child 2"));
G2antt1->PutItems(G2antt1->GetItems(TVariant(-1)),TNoParam());
G2antt1->PutItems(G2antt1->GetItems(TVariant(-1)),TNoParam());
G2antt1->PutItems(G2antt1->GetItems(TVariant(-1)),TNoParam());
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Position");
	var_Column->FormatColumn = L"1 apos ``";
	var_Column->Visible = false;
G2antt1->EndUpdate();

1819
How do I sort the index column as numeric (Method 2)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_CellData(TVariant(Item),TVariant(1),TVariant(var_Items->get_CellCaption(TVariant(Item),TVariant(1))));
}

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->ColumnAutoResize = true;
G2antt1->ShowFocusRect = false;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Next");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(4));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exHeaderPaddingLeft,TVariant(4));
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Index");
	var_Column1->AllowSizing = false;
	var_Column1->Width = 48;
	var_Column1->FormatColumn = L"(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)";
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
	var_Column1->SortType = Exg2anttlib_tlb::SortTypeEnum::SortUserData;
	var_Column1->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddItem(TVariant("Item 3"));
	var_Items->AddItem(TVariant("Item 4"));
	var_Items->AddItem(TVariant("Item 5"));
	var_Items->AddItem(TVariant("Item 6"));
	var_Items->AddItem(TVariant("Item 7"));
	var_Items->AddItem(TVariant("Item 8"));
	var_Items->AddItem(TVariant("Item 9"));
	var_Items->AddItem(TVariant("Item 10"));
G2antt1->EndUpdate();

1818
How do I sort the index column as numeric (Method 1)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Sort Index As String (Default)");
	var_Column->FormatColumn = L"1 index ``";
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Sort Index As Numeric");
	var_Column1->ComputedField = L"%C0";
	var_Column1->SortType = Exg2anttlib_tlb::SortTypeEnum::SortNumeric;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
G2antt1->EndUpdate();

1817
How can I put icons/images into buttons

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"C+B");
	var_Column->AllowSizing = false;
	var_Column->Width = 48;
	var_Column->FormatColumn = L"` <img>` + ( 1 + (1 index ``) mod 3 ) + `</img> `";
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasButton,TVariant(true));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellButtonAutoWidth,TVariant(true));
G2antt1->Columns->Add(L"");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->DefaultItemHeight = 20;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
G2antt1->EndUpdate();

1816
Is it possible to have a CheckBox and Button TOGETHER on all cells in a column

// ButtonClick event - Occurs when user clicks on the cell's button.
void __fastcall TForm1::G2antt1ButtonClick(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant   Key)
{
	OutputDebugString( L"ButtonClick" );
	OutputDebugString( L"Item" );
	OutputDebugString( L"Key" );
}

// CellStateChanged event - Fired after cell's state has been changed.
void __fastcall TForm1::G2antt1CellStateChanged(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex)
{
	OutputDebugString( L"CellStateChanged" );
	OutputDebugString( L"Item" );
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"");
	var_Column->AllowSizing = false;
	var_Column->Width = 32;
	var_Column->FormatColumn = L"1 index ``";
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Def");
	var_Column1->AllowSizing = false;
	var_Column1->Width = 48;
	var_Column1->FormatColumn = L"`     `";
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasButton,TVariant(true));
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellButtonAutoWidth,TVariant(true));
G2antt1->Columns->Add(L"");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
G2antt1->EndUpdate();

1815
Does filtering work with umlauts / accents characters

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Names");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exPattern;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Mantel"));
	var_Items->AddItem(TVariant("Mechanik"));
	var_Items->AddItem(TVariant("Motor"));
	var_Items->AddItem(TVariant("Murks"));
	var_Items->AddItem(TVariant("Märchen"));
	var_Items->AddItem(TVariant("Möhren"));
	var_Items->AddItem(TVariant("Mühle"));
	var_Items->AddItem(TVariant("Sérigraphie"));
G2antt1->Columns->get_Item(TVariant(0))->Filter = L"*ä*";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

1814
How can I temporarily disable resizing the overview part of the control

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->OnResizeControl = Exg2anttlib_tlb::OnResizeControlEnum::exDisableOverview;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewSplitter | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScale | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewAllowVerticalScroll | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->OverviewHeight = 32;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1813
Is it possible to resize the overview part of the control at runtime

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABVADg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSBcEgTDaMYzgMBYJhEMQyDSAUIjPEyMg0DjIIwgJIUaw0GSXIRkGQZC") +
"hGJooTJQMrTZIEbQxHSkIyRVTmZACS5NRZPYy0FAkQhlFSbJBCOKwVomR5KUxTVg1DJwahLCKULLhGI7KgObIRSJOcZ1XAdCQ0cB0XpAC6LaqSA4nSjKcqwJKEZRJIyj" +
"JwgSrrWhePoJYBVAAQPQdDYaCivK5uWK6PqKUIlZBQGQVNS1MRrLSEcwgPKgAyzDadZzfQAWTZFTQjN61RgtXR6eyoAJ0aziFDVFo0WRlEwacorGhcbgPPrCRrxGBVNw" +
"gGOJo4kIeASB0Zw/iGDoym6dobh2XpiDWJo5HMd56h6dxjlICIEhQDQmDOIZUmQZZlAADpYHIEQ3nUGgNhCEIhAkawamAAAYEWRAGB2bA2EqYg2AyA4glgPgSgQYRIEI" +
"FoEmEeBWBiBphFAAgPDwDgDEycQ4A0Q5IwkDwjgyWA8k4SIsmUNoPEOFJbD0DhjHINA3E8Q4eDiDojhiYJmg+Ixokic4LmKQxiCkNk2CCX4DmGaA0nAN4NBiDJSDwTgT" +
"Eycg4E0WIYlcPJiiiMJZhCTYpgCcw5g2OYOGWGQmCkEJkheYopGoVw1GSGQuA2ExIlOQJcDOZJzEDSJNBiAgiU4Q5GCeChNHkHJygsaBzGaCYimiCY0mMNZoCMWhUDUJ" +
"5pkYTIDk6YxwkwO5NlMOoch6JQJm4U4JCIMxWFSKbCBoKIgmJDAuDgKhohKIoTk0GhaHOJgNiMKJuDaaYzHCTYnAyaZmjSKIiDiCghjEYg6AaR4yk0OpOiFSQLAKNgjG" +
"cQ40lkMhOmqZo7DKTpzG6Pw3CmYx2HiNAsCqBh8h6Z5bh6T4oC0G4Im+OAtlMNpTjUTYDCKVo2C3QBLi6a5bH6YY4EyehzAGO4wEwDoejwK5rnK95vDgPJsDWTBjjSWA" +
"xnEK5aleNhriuawKi8Lp7H8HpHHGXBskyQpxguXwNgMTpDFiRZDnEExfBSPRvHuXwYkycYslae5NjMQwrDGNZxFyHINDsDRTBMKZKnKLIwm2S4xF0Jw8lKTIcm9eA0hy" +
"QwuksM5jiyVQwnQDQIlaVo0EyLwQlGcRNCME5EjKfYXGSWEhDMQ5QnOahHG6KwoFOCoFiOaBNlcdIjiQag7HOL0dwuxKC1aeNQI4BQihNDoEwXowxmh8CIL8Yg8ROBfA" +
"SMcaIOR6CHBkMgLgrwUjLHkHMG4NQaBzE4MQaIyw5gxEsH0Dw9FBBNA6PUDoLwpjTHqF0N4WQShSHgGwcY2RkhdFCL8bYdwOivDqNse4fRnh5G+PYEgaR1B0E4B4D4ix" +
"xB4G8E8SI5R8D+DeJUc4eRPB/EaJ8DwpwojDHUPofwtxYjtH2F4d4sx3j7E+AcXo8B9geFCNYOIHhfg/GmPQPoXw3jZHuPoX4hxuj1H8J8T43RPhDEgM8eo/B/iQGuPw" +
"fxEh1guAIAwQAgCAg"));
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewSplitter | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScale | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewAllowVerticalScroll | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->OverviewHeight = 32;
	var_Chart->OverviewSelBackColor = 0x1000000;
	var_Chart->OverviewBackColor = RGB(250,250,250);
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1812
You've provided examples of how to create bars for each record of a MS Access table, however I would like to create a database connected Gantt that has multiple bars per item/resource. Could you please advise

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Summary"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TVariant("0"),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant("0"),-3,TVariant("0"));
		var_Items->AddBar(Item,TVariant("SummaryB"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TVariant("1"),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant("1"),-3,TVariant("1"));
		var_Items->set_ItemBackColor(Item,RGB(240,240,240));
	G2antt1->Chart->set_ItemBackColor(Item,RGB(240,240,240));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TVariant(var_Items->get_ItemBar(Item,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarsCount)),TNoParam());
		var_Items->AddBar(Item,TVariant("TaskB"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(3))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TVariant(var_Items->get_ItemBar(Item,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarsCount)),TNoParam());
}

// MouseDown event - Occurs when the user presses a mouse button.
void __fastcall TForm1::G2antt1MouseDown(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long i = G2antt1->ItemFromPoint[-1,-1,c,hit];
	G2antt1->FullRowSelect = G2antt1->Columns->get_Item(TVariant(c))->get_Data();
}

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->HeaderHeight = 22;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat;
G2antt1->BackColorLock = RGB(240,240,240);
G2antt1->BackColorHeader = G2antt1->BackColorLock;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine;
G2antt1->ColumnAutoResize = false;
G2antt1->SortBarVisible = false;
G2antt1->AllowGroupBy = true;
G2antt1->ReadOnly = Exg2anttlib_tlb::ReadOnlyEnum::exReadOnly;
G2antt1->ShowFocusRect = false;
G2antt1->CountLockedColumns = 1;
G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragScroll;
G2antt1->SingleSort = false;
G2antt1->ColumnsAllowSizing = true;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
G2antt1->GridLineColor = RGB(220,220,220);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,9,1).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->Height = 15;
		var_Bar->Color = RGB(128,128,128);
		var_Bar->StartColor = RGB(204,204,0);
		var_Bar->EndColor = var_Bar->StartColor;
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar->OverlaidGroup = L"Task,TaskB";
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternGradientVBox | Exg2anttlib_tlb::PatternEnum::exPatternBox;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Copy(L"Task",L"TaskB");
		var_Bar1->Color = RGB(128,128,128);
		var_Bar1->StartColor = RGB(153,153,0);
		var_Bar1->EndColor = var_Bar1->StartColor;
	Exg2anttlib_tlb::IBarPtr var_Bar2 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar2->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar2->OverlaidGroup = L"Summary,SummaryB";
		var_Bar2->Color = RGB(204,204,0);
		var_Bar2->StartColor = var_Bar2->Color;
		var_Bar2->EndColor = var_Bar2->Color;
	Exg2anttlib_tlb::IBarPtr var_Bar3 = var_Chart->Bars->Copy(L"Summary",L"SummaryB");
		var_Bar3->Color = RGB(153,153,0);
		var_Bar3->StartColor = var_Bar3->Color;
		var_Bar3->EndColor = var_Bar3->Color;
G2antt1->BackColorSortBar = G2antt1->BackColor;
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Debug = true;
G2antt1->Columns->get_Item(TVariant(0))->set_Data(TVariant(-1));
G2antt1->Layout = L"singlesort=\"C5:1\";multiplesort=\" C1:2\"";
G2antt1->EndUpdate();

1811
How can I filter for multiple captions on a single column, using OR clause

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->ContinueColumnScroll = false;
G2antt1->MarkSearchColumn = true;
G2antt1->SearchColumnIndex = 1;
G2antt1->FilterBarPromptVisible = true;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Name")->Width = 96;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Title");
		var_Column->Width = 96;
	var_Columns->Add(L"City");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h0 = var_Items->AddItem(TVariant("Nancy Davolio"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Andrew Fuller"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Vice President, Sales"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Tacoma"));
	var_Items->set_SelectItem(h0,true);
	h0 = var_Items->AddItem(TVariant("Janet Leverling"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Kirkland"));
	h0 = var_Items->AddItem(TVariant("Margaret Peacock"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Redmond"));
	h0 = var_Items->AddItem(TVariant("Steven Buchanan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Manager"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Michael Suyama"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Robert King"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Laura Callahan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Inside Sales Coordinator"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Anne Dodsworth"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
G2antt1->set_FilterBarPromptColumns(TVariant("1"));
G2antt1->FilterBarPromptPattern = L"Vice Inside";
G2antt1->FilterBarPromptType = Exg2anttlib_tlb::FilterPromptEnum::exFilterPromptContainsAny;
G2antt1->EndUpdate();

1810
How can I filter for multiple captions on a single column, using AND clause

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->ContinueColumnScroll = false;
G2antt1->MarkSearchColumn = true;
G2antt1->SearchColumnIndex = 1;
G2antt1->FilterBarPromptVisible = true;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Name")->Width = 96;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Title");
		var_Column->Width = 96;
	var_Columns->Add(L"City");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h0 = var_Items->AddItem(TVariant("Nancy Davolio"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Andrew Fuller"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Vice President, Sales"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Tacoma"));
	var_Items->set_SelectItem(h0,true);
	h0 = var_Items->AddItem(TVariant("Janet Leverling"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Kirkland"));
	h0 = var_Items->AddItem(TVariant("Margaret Peacock"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Redmond"));
	h0 = var_Items->AddItem(TVariant("Steven Buchanan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Manager"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Michael Suyama"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Robert King"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Laura Callahan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Inside Sales Coordinator"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Anne Dodsworth"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
G2antt1->set_FilterBarPromptColumns(TVariant("1"));
G2antt1->FilterBarPromptPattern = L"Vice Sales";
G2antt1->FilterBarPromptType = Exg2anttlib_tlb::FilterPromptEnum::exFilterPromptContainsAll;
G2antt1->EndUpdate();

1809
How can I display the limits/margins of the project, in the overview part of the control

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABVADg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSBcEgTDaMYzgMBYJhEMQyDSAUIjPEyMg0DjIIwgJIUaw0GSXIRkGQZC") +
"hGJooTJQMrTZIEbQxHSkIyRVTmZACS5NRZPYy0FAkQhlFSbJBCOKwVomR5KUxTVg1DJwahLCKULLhGI7KgObIRSJOcZ1XAdCQ0cB0XpAC6LaqSA4nSjKcqwJKEZRJIyj" +
"JwgSrrWhePoJYBVAAQPQdDYaCivK5uWK6PqKUIlZBQGQVNS1MRrLSEcwgPKgAyzDadZzfQAWTZFTQjN61RgtXR6eyoAJ0aziFDVFo0WRlEwacorGhcbgPPrCRrxGBVNw" +
"gGOJo4kIeASB0Zw/iGDoym6dobh2XpiDWJo5HMd56h6dxjlICIEhQDQmDOIZUmQZZlAADpYHIEQ3nUGgNhCEIhAkawamAAAYEWRAGB2bA2EqYg2AyA4glgPgSgQYRIEI" +
"FoEmEeBWBiBphFAAgPDwDgDEycQ4A0Q5IwkDwjgyWA8k4SIsmUNoPEOFJbD0DhjHINA3E8Q4eDiDojhiYJmg+Ixokic4LmKQxiCkNk2CCX4DmGaA0nAN4NBiDJSDwTgT" +
"Eycg4E0WIYlcPJiiiMJZhCTYpgCcw5g2OYOGWGQmCkEJkheYopGoVw1GSGQuA2ExIlOQJcDOZJzEDSJNBiAgiU4Q5GCeChNHkHJygsaBzGaCYimiCY0mMNZoCMWhUDUJ" +
"5pkYTIDk6YxwkwO5NlMOoch6JQJm4U4JCIMxWFSKbCBoKIgmJDAuDgKhohKIoTk0GhaHOJgNiMKJuDaaYzHCTYnAyaZmjSKIiDiCghjEYg6AaR4yk0OpOiFSQLAKNgjG" +
"cQ40lkMhOmqZo7DKTpzG6Pw3CmYx2HiNAsCqBh8h6Z5bh6T4oC0G4Im+OAtlMNpTjUTYDCKVo2C3QBLi6a5bH6YY4EyehzAGO4wEwDoejwK5rnK95vDgPJsDWTBjjSWA" +
"xnEK5aleNhriuawKi8Lp7H8HpHHGXBskyQpxguXwNgMTpDFiRZDnEExfBSPRvHuXwYkycYslae5NjMQwrDGNZxFyHINDsDRTBMKZKnKLIwm2S4xF0Jw8lKTIcm9eA0hy" +
"QwuksM5jiyVQwnQDQIlaVo0EyLwQlGcRNCME5EjKfYXGSWEhDMQ5QnOahHG6KwoFOCoFiOaBNlcdIjiQag7HOL0dwuxKC1aeNQI4BQihNDoEwXowxmh8CIL8Yg8ROBfA" +
"SMcaIOR6CHBkMgLgrwUjLHkHMG4NQaBzE4MQaIyw5gxEsH0Dw9FBBNA6PUDoLwpjTHqF0N4WQShSHgGwcY2RkhdFCL8bYdwOivDqNse4fRnh5G+PYEgaR1B0E4B4D4ix" +
"xB4G8E8SI5R8D+DeJUc4eRPB/EaJ8DwpwojDHUPofwtxYjtH2F4d4sx3j7E+AcXo8B9geFCNYOIHhfg/GmPQPoXw3jZHuPoX4hxuj1H8J8T43RPhDEgM8eo/B/iQGuPw" +
"fxEh1guAIAwQAgCAg"));
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum(0x400 | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowSelMargins | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowMargins | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScaleBottom | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible);
	var_Chart->OverviewHeight = 64;
	var_Chart->OverviewSelBackColor = 0x1000000;
	var_Chart->OverviewBackColor = RGB(250,250,250);
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1808
Is it possible to display a time-scale for the overview part of the control (separated)

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScaleSplit | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->OverviewHeight = 48;
	var_Chart->LevelCount = 2;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1807
Is it possible to display a time-scale for the overview part of the control

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScale | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->LevelCount = 2;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1806
How can I display the time-scale only, in the overview part of the control

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScale | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewHideBars | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->LevelCount = 2;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1805
How can I detect that the mouse pointer is within an InsideZoom object
// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
		Date d = var_Chart->get_DateFromPoint(-1,-1);
		_tlb::ObjectPtr iz = var_Chart->InsideZooms->get_Contains(TVariant(d));
		OutputDebugString( L"d" );
		OutputDebugString( L"If the iz object is nothing, the date is not zoomed, else it is." );
		OutputDebugString( L"iz" );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,0);
	var_Chart->LevelCount = 2;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
	var_Chart->AllowInsideZoom = true;
	var_Chart->InsideZooms->Add(TVariant(TDateTime(2001,1,10).operator double()));
G2antt1->EndUpdate();

1804
Is it possible to word-wrap text/caption on the bar, so it gets displayed on multiple lines

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->ItemsAllowSizing = Exg2anttlib_tlb::ItemsAllowSizingEnum::exResizeItem;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->HeaderHeight = 28;
G2antt1->DefaultItemHeight = 24;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Bump;
G2antt1->Columns->Add(L"Tasks");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Copy(L"Task",L"TaskB");
		var_Bar->Height = 15;
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox;
		var_Bar->StartColor = RGB(204,232,255);
		var_Bar->EndColor = var_Bar->StartColor;
		var_Bar->Color = RGB(0,0,255);
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar1->Height = -1;
		var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox;
		var_Bar1->StartColor = RGB(204,232,255);
		var_Bar1->EndColor = var_Bar1->StartColor;
		var_Bar1->Color = RGB(0,0,255);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Word-Wrap Inside"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A1"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("none[(2,2,100%-4,100%-4),text=`This is a bit of text that should break the line`,wordwrap]"));
	h = var_Items->AddItem(TVariant("Word-Wrap Inside"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,19).operator double()),TVariant("A2"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("none[(2,2,100%-4,100%-4),align=0x11,text=`This is a bit of text that should break the line`,wordwrap]"));
	h = var_Items->AddItem(TVariant("Word-Wrap Back"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A3"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A3"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("client[align=0x11,text=`This is a bit of text that should break the line`,wordwrap]"));
	var_Items->set_ItemBar(h,TVariant("A3"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExtFlags,TVariant(2));
G2antt1->EndUpdate();

1803
Can I set the search box / filterbarprompt to invisible, so I can use my own input and *string* via VBA
G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->ContinueColumnScroll = false;
G2antt1->MarkSearchColumn = false;
G2antt1->SearchColumnIndex = 1;
G2antt1->FilterBarHeight = 0;
G2antt1->FilterBarPromptVisible = true;
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Name")->Width = 96;
	var_Columns->Add(L"Title")->Width = 96;
	var_Columns->Add(L"City");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h0 = var_Items->AddItem(TVariant("Nancy Davolio"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Andrew Fuller"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Vice President, Sales"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Tacoma"));
	var_Items->set_SelectItem(h0,true);
	h0 = var_Items->AddItem(TVariant("Janet Leverling"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Kirkland"));
	h0 = var_Items->AddItem(TVariant("Margaret Peacock"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Redmond"));
	h0 = var_Items->AddItem(TVariant("Steven Buchanan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Manager"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Michael Suyama"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Robert King"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Laura Callahan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Inside Sales Coordinator"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Anne Dodsworth"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
G2antt1->FilterBarPromptPattern = L"London";
G2antt1->EndUpdate();

1802
How to load a hierarchy using the control's DataSource property (Parent-ID-Relation)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->SetParent(Item,var_Items->get_FindItem(TVariant(var_Items->get_CellValue(TVariant(Item),TVariant("ReportsTo"))),TVariant("EmployeeID"),TNoParam()));
}

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("SELECT * FROM Employees ORDER BY ReportsTo"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1801
How can I highlight the limits/margins of a summary bar, according with the child bars

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABRkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjhwkAIIQK/cZRPC0Ow8GSEZAgOKIch6FgCQjEIxDKIsVRZEiDYRmGLpIiOJoWSQBUIyJKoA") +
"Q0f6fIziaTpNiGL4yTBPMzyJRcEx1GyBZ5negaAo2AwIQiUBomGahajkMqZQAJaCSCI2Y4eDZCIoTXR1WAxDq3ZruKpLUpOc4DOrEMIwCEBA="));
	var_Appearance->Add(2,TVariant("CP:1 -4 0 5 0"));
	var_Appearance->Add(3,TVariant(String("gBFLBCJwBAEHhEJAAEhABOMGACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQRHc5TN") +
"CMTRRECDY4kAYpAiKRYbSpAcyQHQ8bQtHwYKAoOg6JjWIAHRqCMI0XINHQ3FwaRJsCwoJhOZIDWZENDQTSsLSxJSkIRfe4wArNf4XVBVMqSdKEZRJLybJwADApAo2eIl" +
"QjJdQ4TSdBSdQwDLYhECpbwCT6JT7jGLQJZsNyvBLIYDrKA8UozFqHQRYNhxDZNShhM6rMigPQQAq8AKlRbVNzXLamLwHRS9BpoORhUjHD4bVxVOyaPpAAaBFbhI44QZ" +
"OHYNYfjgaI0BySp8HMVZdlgaxtBqexWkqOw1lGbZzlwfQ0AwYR/gka5FiMGpgkQYYviGV4kBUWpmlsaYGHMEgACECQUAaEYMHQHRHCGFRBECRJkGQQgTGCVBoDYQhCgQ" +
"JZoG4EIAGEFwGB+dwxHaB5iAabReggYhGnUToJGIRgCCiCBdjiNguGmYo4gIKoMGIKIeDSCYTGiXg4EITo3hAiJAICA=="));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Summary"))->Color = 0x3000000;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
	var_Items->set_ItemBar(hSummary,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exSummaryBarBackColor,TVariant(33554432));
G2antt1->EndUpdate();